package com.mao.crowd.constant;

import javax.servlet.http.HttpSession;
import java.util.HashSet;
import java.util.Set;

/**
 * @author: Administrator
 * @description:
 * @cteate 2021-06-22-15:31
 */
public class AccessPassResources {

    // 不需要进行登录检查的地址
    public static final Set<String> PASS_RES_SET = new HashSet<>();

    static {
        PASS_RES_SET.add("/");
        PASS_RES_SET.add("/auth/member/to/reg/page.html");
        PASS_RES_SET.add("/auth/member/to/login/page.html");
        PASS_RES_SET.add("/auth/member/logout");
        PASS_RES_SET.add("/auth/member/do/login.html");
        PASS_RES_SET.add("/auth/do/member/register");
        PASS_RES_SET.add("/auth/member/send/short/message.json");
        PASS_RES_SET.add("/get/project/detail/**");
    }

    //静态资源不需要执行登录检查
    public static final Set<String> STATIC_RES_SET =  new HashSet<>();

    static {
        STATIC_RES_SET.add("bootstrap");
        STATIC_RES_SET.add("css");
        STATIC_RES_SET.add("fonts");
        STATIC_RES_SET.add("img");
        STATIC_RES_SET.add("jquery");
        STATIC_RES_SET.add("layer");
        STATIC_RES_SET.add("script");
        STATIC_RES_SET.add("ztree");
    }

    /**
     * 判断请求地址的目录是否在静态资源的集合中
     * @param servletPath
     * @return
     */
    public static boolean judgeCurrentPathwetherStaticResource(String servletPath){

        // 排除传过来的请求地址为空的情况
        if (servletPath == null || servletPath.length() == 0){
            throw new RuntimeException(CrowdConstant.MESSAGE_STRING_INVALIDATE);
        }

        String[] split = servletPath.split("/");
        // split拆分"/",第一个元素是空的,第二个才是要获取到的资源
        // 因为第一个/分隔的是空和第一个资源
        String firstLevelPath = split[1];
        // 第一级目录是否在STATIC_RES_SET静态资源集合中
        return STATIC_RES_SET.contains(firstLevelPath);
    }

}
